<p>A magic number is a number that comes out of nowhere, and is directly used in a statement. Magic numbers are often used, for instance to limit the number of iterations of a loops, to test the value of a property, etc.</p>

<p>Using magic numbers may seem obvious and straightforward when you're writing a piece of code, but they are much less obvious and straightforward at debugging time.</p>

<p>That is why magic numbers must be demystified by first being assigned to clearly named variables before being used.</p>
<p>-1, 0 and 1 are not considered magic numbers (by default, configurable).</p>

<h2>Noncompliant Code Example</h2>
<pre>
public static void doSomething() {
  for(int i = 0; i &lt; 4; i++){                 // Noncompliant, 4 is a magic number
    ...
  }
}
</pre>

<h2>Compliant Solution</h2>
<pre>
public static final int NUMBER_OF_CYCLES = 4;
public static void doSomething() {
  for(int i = 0; i &lt; NUMBER_OF_CYCLES ; i++){
    ...
  }
}
</pre>
